Welcome to pandas!

8.16 高级表格横向拼接-3(自定义关联)

在使用merge()函数拼接时,还可以将行索引与指定列关联,或者对指定列重新做数据处理后再关联;

1、 两表行索引与列关联

2、 两表的连接健为数组


import pandas as pd

df_l=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.14 高级表格横向拼接-1(按索引关联).xlsx","分数表" , index_col =0)

df_r=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.14 高级表格横向拼接-1(按索引关联).xlsx","信息表" )

print (df_l)

print (df_r)

df=pd.merge(

left =df_l,

right =df_r,

left_index = True , #这一行不加,会提示出错

right_on = "编号" #如果是单个字段名,则不用列表[]

)

print (df)

返回:

姓名 部门 分数
工号
NED01 张三 销售部 99
NED03 王麻子 IT部 97
NED05 小华 销售部 96

编号 姓名 部门 籍贯
0 NED01 张三 销售部 山东
1 NED02 李四 财务部 四川
2 NED03 王麻子 IT部 湖南
3 NED04 小曾 销售部 上海
4 NED05 小华 销售部 北京

姓名_x 部门_x 分数 编号 姓名_y 部门_y 籍贯
0 张三 销售部 99 NED01 张三 销售部 山东
2 王麻子 IT部 97 NED03 王麻子 IT部 湖南
4 小华 销售部 96 NED05 小华 销售部 北京

import pandas as pd

df_l=pd.read_excel( r"D:\Pyobject2023\object\测试\素材\1.8.14 高级表格横向拼接-1(按索引关联).xlsx","分数表" )

df_r=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.14 高级表格横向拼接-1(按索引关联).xlsx","信息表" )

print (df_l)

print (df_r)

df=pd.merge(

left =df_l,

right =df_r,

left_on =df_l[ "工号" ].str[-2:],

right_on =df_r[ "编号" ].str[-2:] #不设置索引,使用提取的编号作来关健字段关联

)

print (df)

返回:

工号 姓名 部门 分数
0 NED01 张三 销售部 99
1 NED03 王麻子 IT部 97
2 NED05 小华 销售部 96

编号 姓名 部门 籍贯
0 NED01 张三 销售部 山东
1 NED02 李四 财务部 四川
2 NED03 王麻子 IT部 湖南
3 NED04 小曾 销售部 上海
4 NED05 小华 销售部 北京

key_0 工号 姓名_x 部门_x 分数 编号 姓名_y 部门_y 籍贯
0 01 NED01 张三 销售部 99 NED01 张三 销售部 山东
1 03 NED03 王麻子 IT部 97 NED03 王麻子 IT部 湖南
2 05 NED05 小华 销售部 96 NED05 小华 销售部 北京